package com.chinatsp.onlineapp.base;

import com.chinatsp.onlineapp.R;

import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Window;
import tsp.cn.http.interfac.INetResult;
import tsp.cn.http.tools.T;
import tsp.cn.http.widget.ProgressHUD;

/**
 * Activity 基类
 */
public class BaseActivity extends FragmentActivity implements INetResult {
	ProgressHUD mProgressHUD;

	/**
	 * @param requestCode
	 *            网络请求顺序号，第一个请求，NetRequestOrderNum=0,处理第一条请求的结果。如果等于1,
	 */
	@Override
	public void onRequestSuccess(int requestCode) {

	}

	/**
	 * 请求失败
	 */
	@Override
	public void onFinished() {
		showProgress(false);
	}

	/**
	 * 请求失败
	 * 
	 * @param errorNo
	 * @param errorMessage
	 */
	@Override
	public void onRequestFailed(String errorNo, String errorMessage) {
		T.showShort(this, errorMessage);
	}

	/**
	 * 无网络连接
	 */
	@Override
	public void onNoConnect() {
//		showProgress(false);
//		T.showShort(this, "无网络连接");
//		makeAlertDialog("无网络连接", "无网络连接，点击确定退出", false, true);
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
//		this.requestWindowFeature(Window.FEATURE_NO_TITLE);
	}

	/**
	 * 加载对话框
	 * 
	 * @param show
	 */
	public void showProgress(boolean show) {
		showProgressWithText(show, getString(R.string.loading));
	}

	/**
	 * 可编辑 提示信息的加载对话框
	 * 
	 * @param show
	 * @param message
	 */
	public void showProgressWithText(boolean show, String message) {
		if (show) {
			mProgressHUD = ProgressHUD.show(this, message, true, true, null);
		} else {
			if (mProgressHUD != null) {
				mProgressHUD.dismiss();
			}
		}
	}

	/**
	 * 生成一个带有确定按钮的alertdialog提示框
	 * 
	 * @param paramTitle
	 *            提示框的标题
	 * @param paramMessage
	 *            提示框的内容
	 * @param paramCancelable
	 *            提示框是否可以被取消
	 * @param paramKill
	 *            点击确定按钮是否可以退出当前应用程序
	 */
	private void makeAlertDialog(String paramTitle, String paramMessage, Boolean paramCancelable, final Boolean paramKill) {

		Builder alertDialog = new AlertDialog.Builder(this);
		alertDialog.setTitle(paramTitle);
		alertDialog.setMessage(paramMessage);
		alertDialog.setCancelable(paramCancelable);
		alertDialog.setPositiveButton(R.string.alertDialog_PositiveButton,
				new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface arg0, int arg1) {
						// TODO Auto-generated method stub
						if (paramKill) {
							android.os.Process.killProcess(android.os.Process
									.myPid());
							System.exit(0);
						}

					}
				});
		if (paramKill) {
			alertDialog.show();
		}
	}

}
